Echo canceller and method therefor

ABSTRACT

The invention relates to a computer-implemented method for updating at least one frequency-domain filter coefficient W i,j (k) of an echo canceller having at least one channel and at least one segment per channel, the filter coefficients of the echo canceller being updateable in the frequency domain at a time block m comprising:
         determining a canceller output E m (k) over the nth time block;   determining a canceller error ϵ(k) over the m− th time block;   determining a look-backward error  (k);   determining a look-forward error {right arrow over (ϵ)}(k) as       

       {right arrow over (ϵ)} k )= E   m ( k )−λ{right arrow over (Δ)}( k )
         wherein {right arrow over (Δ)}(k) is based on       

     
       
         
           
             
               
                 ∑ 
                 
                   i 
                   = 
                   0 
                 
                 
                   C 
                   - 
                   1 
                 
               
                
               
                 
                   ∑ 
                   
                     j 
                     = 
                     0 
                   
                   
                     S 
                     - 
                     1 
                   
                 
                  
                 
                   
                     
                       
                         ℰ 
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                        
                       
                         
                           X 
                           
                             
                               i 
                               , 
                               j 
                               , 
                               
                                 m 
                                 - 
                                  
                               
                             
                              
                             
                                 
                             
                           
                           * 
                         
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                     
                       
                         
                           ∑ 
                           
                             a 
                             = 
                             0 
                           
                           
                             C 
                             - 
                             1 
                           
                         
                          
                         
                           
                             ∑ 
                             
                               b 
                               = 
                               0 
                             
                             
                               S 
                               - 
                               1 
                             
                           
                            
                           
                             
                                
                               
                                 
                                   X 
                                   
                                     a 
                                     , 
                                     b 
                                     , 
                                     
                                       m 
                                       - 
                                        
                                     
                                   
                                 
                                  
                                 
                                   ( 
                                   k 
                                   ) 
                                 
                               
                                
                             
                             2 
                           
                         
                       
                       + 
                       ϵ 
                     
                   
                    
                   
                     
                       X 
                       
                         i 
                         , 
                         j 
                         , 
                         m 
                       
                     
                      
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
               
             
             ; 
           
         
       
         
         
           
             determining an optimal update step-size μ i,j,m (k) from said canceller output E m (k) over the nth time block, from said canceller error Δ(k) over the m− th time block, from said look-backward error  (k), and from said look-forward error {right arrow over (ϵ)}(k); and 
             updating said at least one filter coefficient W i,j (k) by using said optimal update step-size μ i,j,m (k). The invention further pertains to an echo canceller implementing said method.

FIELD OF THE INVENTION

The present invention relates to a computer-implemented method for updating at least one frequency-domain filter coefficient of an echo canceller having at least one channel and at least one segment per channel, the filter coefficients of the echo canceller being updatable in the frequency-domain at a time block. The invention further relates to an echo canceller configured to execute said method.

BACKGROUND OF THE INVENTION

Acoustic echo is a major impairment present in audio communications, such as in videoconferencing, in--car voice communications, voice interfaces, and human-machine dialogue systems. Multi-channel acoustic echo (see “Acoustic multi-channel echo cancellation,” EP 2438766 B1 and “Advances in digital speech transmission,” Wiley. 2008) manifests when the sound from a plurality of loudspeakers connected to a terminal are captured by the microphone connected to said terminal. The terminal can refer to a desktop computer, or mobile phone, tablet, voice-commanded assistant, dedicated audioconferencing equipment, hand-free car telephony, et cetera.

As said terminal is usually placed within a room, the multiple sound reflections at the room walls arrive at the microphone at different time instants and intensities, hence creating a large number of acoustic echoes. The characteristics of said echo “fingerprint” is sensitive to the location of the microphone and loudspeaker(s), the room geometry and the objects and persons present therein.

The echo has a negative impact in the communication because partici- pants in a videoconference hear their voices echoed as they speak, speech interfaces get “drowned” by the sounds (such as music) played by their loudspeaker system, and persosn engaged in a mobile phone call to a car driver hear their own voices echoed inside the car chamber.

While mono systems still represent a good number of said terminals, multi-channel audio systems are increasingly appearing: car sound systems are at least stereo, dedicated videoconferencing equipment may use several loudspeakers for different participants, thus creating a more realistic meeting experience, and embedded voice interfaces are commonly integrated within stereo-sound equipment.

The present invention focuses on the problem scenario illustrated in FIG. 1, wherein a plurality of audio sources 10, e. g. audio channels, are played by a plurality of loudspeakers 20 in a room, and all the sounds in the room are captured by only one microphone 30. Its extension to more than one microphone (for instance to transmit stereo sound) is deemed straightforward, as the present invention can be applied on every micro- phone signal separately. Henceforth, “effective” loudspeaker refers to all electroacoustic device(s) that reproduce the same audio source or a linearly filtered version thereof. For instance if an stereo sound-reproduction system plays a single-channel (mono) audio source, the number of effective loudspeakers is one. Another example is a car stereo system, which may count several (more than two) physical loudspeakers, but if the car sound system is for instance reproducing stereo music, the number of effective loudspeakers, e. g. audio channels, is two.

The signal z(n) captured by the microphone 30 upon undergoing an analogue to digital conversion can be expressed as follows

$\begin{matrix} {{{z(n)} = {{d(n)} + {v(n)} + {p(n)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{l = 0}^{L_{H} - 1}{{h_{i}(l)}{s_{i}\left( {n - l} \right)}}}}}},} & (1) \end{matrix}$

wherein n is discrete time, C is the number of far-end audio channels, s_(i)(n) is the far-end audio source at the ith-channel, h_(i)(l) is the equivalent discrete-time echo path between the ith effective loudspeaker and the microphone, L_(H) is the total length in samples of the echo path, d(n) is the main (or desired) near-end sound signal, and v(n) is the near-end background noise. The last term p(n) refers to the deviations from the linear echo model in (1), such as due to non-linear characteristics of the loud-speaker(s). The main near-end signal d) may result from several sources within the room. Usually d(n) is speech, music, or both, et cetera, of semantic value to the far-end listener, hence it is to be transmitted with minimum distortion. On the other hand, the near-end background noise v(n), assumed to be nearly stationary, carries relevant contextual information of the near-end acoustic scene.

The Objective of any acoustic echo reduction system is threefold:

-   1. to reduce the echo components in the microphone signal z(n) to     the extent that they become inaudible, -   2. to preserve the quality of the main near-end signal d(n) present     in the microphone signal z(n) as much as possible, and -   3. to maintain the perceptual impression of the near-end background     noise v(n) present in the microphone signal z(n).     An acoustic echo canceller (AEC), a residual-echo nonlinear     processor (NIP), and a comfort-noise injector (CNI), all governed by     an echo control apparatus, are meant to execute respectively said     threefold objective.

In the following, a short overview of the technological background of the echo reduction system is given with reference to FIGS. 1 and 2.

A basic multi-channel and multi-segment acoustic echo canceller 200 comprises a plurality of digital linear transversal filters 210, such that the response related to the ith channel is built as

$\begin{matrix} {{{u_{i}(n)} = {\sum\limits_{j = 0}^{S - 1}{\sum\limits_{l = 0}^{L - 1}{{w_{i,j}(l)}{x_{i,j}\left( {n - l} \right)}}}}},} & (2) \end{matrix}$

wherein S is the number of segments per channel, L is the filter length in each segment, w_(i,j)(l) corresponds to the filter coefficients of the ith channel and jth segment, and x_(i,j)(n) is the input signal to filter w_(i,j)(l) defined as

x _(i,j)(n)=s _(i)(n−jL).   (3)

The concatenation of the filters from all S segments in the ith channel builds the impulse response of the echo canceller for said ith channel.

The synthetic echo model (2) is meant to deliver a signal that resembles the echoes in z(n) related to the ith channel. The global canceller output is built in 220 additively with the contributions from all C channels as follows

$\begin{matrix} {{{e(n)} = {{z(n)} - {\sum\limits_{i = 0}^{C - 1}{u_{i}(n)}}}},} & (4) \end{matrix}$

resulting in an output e(n) of reduced echo content.

A criterion to select the filter length L is namely to enclose large quasi-stationary intervals of the far-end signals s_(i)(n). For instance, most speech phonemes are found within few tens of milliseconds, hut, in longer ranges, speech usually contains at least two phonemes of different spectral char- acteristics. A stereo speech-based echo control for automotive spaces with echo path lengths in the order of 40-milliseconds could be designed as follows: the echo canceller would have two channels, e. g. C=2, and at least two segments per channel, e. g. S≥2, with a filter length L equivalent to 20-milliseconds worth of signal samples, hence with four transversal filters, C×S=2×2=4. Having different lengths for each filter could be possible too.

Because L is usually a large number, the time-domain convolution (2) turns out a costly operation. As alternative thereto, the response of the canceller can be efficiently computed in the frequency domain. with N-point blocks, such that N is chosen as a power of two for better computational efficiency. Said frequency-domain block-based convolution is obtained as follows

$\begin{matrix} {{u = {F^{- 1}{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{W_{i,j} \circ X_{i,j}}}}}},} & (5) \end{matrix}$

wherein F is the N-point discrete Fourier transform (INT) matrix (F⁻¹ corresponds thus to the inverse discrete Fourier transform), and the operation ∘ denotes element-by-element multiplication. The N-point column vectors W_(i,j) and X_(i,j), which refer respectively to the frequency-domain weights and far-end input block of the ith channel and jth segment, are built as follows

$\begin{matrix} {W_{i,j} = {F\left\lbrack \begin{matrix} {w_{i,j}(0)} & \cdots & {w_{i,j}\left( {L - 1} \right)} & \left. \overset{\leftarrow{{N - L}\rightarrow}}{\begin{matrix} 0 & \cdots & \cdots & 0 \end{matrix}} \right\rbrack^{T} \end{matrix} \right.}} & (6) \\ {{X_{i,j} = {F\begin{bmatrix} {x_{i,j}\left( {n - N + 1} \right)} & \cdots & {x_{i,j}\left( {n - 1} \right)} & {x_{i,j}(n)} \end{bmatrix}}^{T}},} & (7) \end{matrix}$

wherein T denotes transpose.

The operation (5) delivers exactly M=N−L+1 valid samples of the linear convolution, said samples being located in the last M rightmost elements of vector u. The M valid errors, obtained with the difference between the microphone signal and the overall canceller response as per (4), are stored in vector e for further processing

e=[e(n−M+1) . . . e)(n)]^(T).   (8)

In order to obtain a canceller response (5) closer to the actual echo in the microphone signal z(n), the frequency-domain weights W_(ij) of the ith channel and ith segment are updated via the fast LMS algorithm (see “Acoustic echo devices and methods,” US 2006/0018460 A1) as follows

$\begin{matrix} {{W_{i,j}^{new} = {W_{i,j} - {\mu \; {{E \circ X_{i,j}^{*}}/\left( {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{X_{i,j}}^{2}}} + \epsilon} \right)}}}},} & (9) \end{matrix}$

wherein W_(i,j) ^(new) contains the updated weights, E is the frequency-domain counterpart of the canceller output e, obtained as follows

$\begin{matrix} {{E = {F\begin{bmatrix} \overset{\leftarrow{{N - M}\rightarrow}}{\begin{matrix} 0 & \cdots & \cdots & 0 \end{matrix}} & e^{T} \end{bmatrix}}^{T}},} & (10) \end{matrix}$

the operator * denotes complex conjugate, the vector operator/represents element-by-element division, |X_(i,j)|² is a vector built with the square magnitude of every complex-valued element in vector X_(i,j),∈>0 prevents division by zero or values near zero, and μ is the step size.

Because the time-domain counterpart of the new weight vector W_(i,j) ^(new) should contain zeroes in its rightmost side (6), the new spectral weights (9) can be further updated by returning said weights to the time domain, resetting (to zero) the last N−L taps, and returning the result back to the frequency domain. Said time-constraint operation demands two additional DFT operations, hence increasing the computation complexity. If desired, this step can he avoided at the price of slower convergence (see “Unconstrained frequency-domain adaptive filter,” IEEE Transaction on Acoustics, Speech ad Signal Processing, October, 1982). As this operation is well known by any expert in the art, we use (9) as the generic representation of the weight update rule, which encompasses the option to perform (or not) said time-constraint operation.

It is known that the convergence of said adaptive system (9) is assured for a step size in the range 0<μ<2. However, the range 0<μ≤1 is considered in the practice, whose limits correspond to frozen update μ=0 and fastest update μ=1 in interference-free conditions.

The generic multi-channel and multi-segment adaptive system (9) has been matter of thorough study (see “Generalized multichannel frequency-domain adaptive filtering: efficient realization and application to hands-free speech communication,” Signal Processing 85, pp. 549-570, 2005, “Acoustic echo devices and methods,” US 2006/0018460 A1, “Acoustic multi-channel echo cancellation,” EP 2438766 B1, “Method and apparatus for multi-channel audio processing using single-channel components,” U.S. Pat. No. 8,233,632 B1, and “Subband echo cancellation method for multi-channel audio teleconference and echo canceller using the same,” U.S. Pat. No. 6,246,760 B1).

In order for the prior state of art to succeed in real scenarios, several challenges are yet to be effectively solved:

The presence of non-cancellable terms, such as d(n) and v(n), in error E corrupts the update (9), which as result exhibits unstable behaviour. Double-talk detectors (DTT) aim to prevent this drawback by detecting when it is safe to train the adaptive system (see “Enhanced echo cancellation,” U.S. Pat. No. 8,873,740 B2). So far, DTTs have not proven accurate nor quick enough, especially under severe double-talk. Hence, robustness against any type of double-talk is yet to be effectively solved.

As the global error E is used for the update (9) of every filter, the misalignment of any filter is propagated to the remaining C×S−1 filters, and vice versa. Despite being considered intrinsic in adaptive filtering, this fact harms the canceller's learning abilities. For instance, in web-based audioconferencing, user motion or change of the terminal orientation has larger impact on early echoes. It is thus desirable to count with a mechanism of true filter-independent update.

Upon the previous two drawbacks, attempting to adapt the filters with the canceller output E according to the state of art results in unstable and slow convergence, hence failing to reduce the echo quick enough to acceptable levels.

Upon the echo cancellation, the canceller output E may still contain audible echo because:

the echo path length L_(H) is larger than the canceller length, L_(H)>>S×L, hence the late-arriving echoes cannot be cancelled,

the adaptive canceller is yet to converge to the “steady state”, and

non-linear echo components, characterized by p(n) in (1), cannot be removed by the linear echo canceller (5).

The canceller output can be thus rewritten in the following additive model

$\begin{matrix} {{E = {D + V + P + Q + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}R_{i,j}}}}},} & (11) \end{matrix}$

wherein D corresponds to the main near-end signal, V is the near-end background noise, P corresponds to the non-linear echo components, Q represents the echo beyond the time scope of the canceller, and R_(i,j) is the residual echo related to the ith channel and jth segment.

In order to reduce effectively the residual echo P, Q, and R_(i,j) to inaudible levels, a non-linear processing 300 (NLP) stage is to act over the canceller output E, delivering the echo-free output O. Several strategies are possible thereto, such as filtering, spectral subtraction, or by following principles of psychoacoustics, this last one being the preferred option when dealing with music signals. Let us consider for the purpose of illustration a filtering-based approach

O=E∘B _(NLP),   (12)

wherein 0≤B_(NLP)≤1 is the frequency-response of the NLP filter.

It is important to remark that the non-linear processing 300 (12), unlike echo cancellation 200, introduces distortion to the main near-end signal D present in the canceller output E, which creates a delicate tradeoff between so residual echo reduction versus main near-end signal distortion. The stage of echo cancellation plays a decisive role in said tradeoff: if the echo can- celler is notably misaligned, the NLP filtering must act aggressively over the residual echo at the risk of damaging the main near-end signal; con- versely, if the canceller manages to remove efficiently most of the echo, the impact of the NLP filter over the main near-end signal may go unnoticed. Therefore, the accurate estimation of all residual echo terms, P, Q, and R_(i,j) present in the canceller output E is important for an effective NLP stage.

Residual echo suppression is concern of recent prior art, such as in “Acoustic echo suppression,” US 2017/0118326 A1, wherein the activation of the echo suppressor depends on one or more transient or steady-state parameters. In another recent invention, “Robust acoustic echo cancellation for loosely paired devices based on semi-blind multichannel demixing,” US 2016/0029120 A1, a semi-blind multichannel source separation is performed to decompose the audio signals into a near-end source signal and residual echoes based on independent component analysis, thus requiring more than one (multiple) microphones to operate.

The near-end background noise V is distorted by the NLP operation (12) as well. This fact causes periods of silence and/or sudden changes in the background noise level, which can be distracting, if not annoying, for the listener. Comfort noise injection 400 (see “Comfort noise generator for echo cancelers” U.S. Pat. No. 5,949,888 A1) solves this drawback by filling up the gaps with synthetic noise, hence giving the illusion of a uniform background noise. The injected synthetic noise must resemble the actual near-end background noise v(n) in both spectral content and level. The final output Y of the echo reduction system can be obtained as follows

Y=O+{circumflex over (V)}∘(1−B _(NLP)),   13)

wherein {circumflex over (V)} is the synthetic replica of the near-end background noise. Accurate spectral estimation of the near-end background noise V turns out important to maintain a pleasant listening experience.

In the prior art “Method and apparatus pr comfort noise generation in speech communication systems” U.S. Pat. No. 7,610,197 B2, the background noise is obtained by accumulating and smoothing over time the spectral samples E; in the inventions “Comfort noise veneration method and system,” US 2011/0228946 A1, “Enhanced echo cancellation,” U.S. Pat. No. 8,873,740 B2, the estimation of the background noise is carried out during periods when both far-end and near-end are inactive. The state of the art may not always work: in case of audioconferencing in moderately reverberated rooms, the residual echo beyond the canceller scope Q may fill up periods of silence in the near-end signal, thus acting de-facto as background noise; this problem is further stressed with gapless audio content such as music, in which the residual echo can be mistaken as noise in the background.

SUMMARY OF THE INVENTION

In view of the problems discussed above, is an object of the invention to provide an improved acoustic echo canceller that is more stable and yields a faster convergence.

The problems are solved in a first aspect of the invention by a computer- implemented method for updating at least one frequency-domain filter coefficient W_(i,j)(k) of an echo canceller having at least one channel and at least one segment per channel, the filter coefficients of the echo canceller being updateable in the frequency domain at a time block m comprising:

determining a canceller output E_(m)(k) over the mth time block as the difference between Z_(m)(k) and a cancelling term based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,m}(k)}}}};} & (14) \end{matrix}$

determining a canceller error ϵ(k) over the m−

th time block as the difference between

(k) and a cancelling term based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,m}(k)}}}};} & (15) \end{matrix}$

determining a look-backward error

(k) as

(k)=ε(k)−λ

(k),   (16)

wherein

(k) is based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{a,b,m}(k)}}^{2}}} + \epsilon}{X_{i,j,{m - }}(k)}}}};} & (17) \end{matrix}$

determining a look-forward error {right arrow over (ϵ)}(k) as

{right arrow over (ϵ)}(k)=E _(m)(k)−λ{right arrow over (Δ)}(k),   (18)

wherein {right arrow over (Δ)}(k) is based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{\mathcal{E}(k)}{X_{i,j,{m - }}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{i,j,{m - }}(k)}}^{2}}} + \epsilon}{X_{i,j,{m - }}(k)}}}};} & (19) \end{matrix}$

determining an optimal update step size μ_(i,j,m)(k) from said canceller output E_(m)(k) over the mth time block, from said canceller error ϵ(k) over the m−

th time block, from said lookibackward error

(k), and from said look-forward error {right arrow over (ϵ)}(k); and

updating said at least one filter coefficient W_(i,j)(k) by using said optimal update step-size μ_(i,j,m)(k);

wherein

-   C corresponds to the number of channels i=0, . . . , C−1 of the echo     canceller, -   S corresponds to the number of segments j=0, . . . , S−1 per channel     of the echo canceller, -   is an integer different than zero, -   k denotes a frequency bin index, -   ϵ is a positive value, Z_(m)(k) corresponds to the kth spectral bin     of the microphone signal at the mth time block, -   (k) corresponds to the kth spectral bin of the microphone signal at     the m−     th time block, -   X_(i,j,m)(k) corresponds to the kth spectral bin of the far-end     signal at the ith channel, jth segment, and mth time block, -   (k) corresponds to the kth spectral bin of the far-end signal at the     ith channel, jth segment, and m−     th time block, -   λ is the overshoot factor, and -   a, b are channel and segment indices, respectively.

The claimed method yields an optimal step size μ_(i,j,m)(k) that is very accurate thanks to using the information from the canceller output E_(m)(k) at the mth block, the canceller error ϵ(k) at the m−

th block, and the look-forward error {right arrow over (ϵ)}(k) in addition to the look-backward error

(k). Because the integer

can take a positive value, the m−

th block is already available, hence not incurring any delay in the update, that is, the optimal step size μ_(i,j,m)(k) can be immediately obtained as soon as the mth time block is available. Said filter update with the optimal step size μ_(i,j,m)(k) as computed with the inventive method yields a faster convergence and a more effective reduction of echo than echo cancellers of the state of the art.

The wording “based on”, adopted when introducing E_(m)(k) and ϵ(k) with (14) and (15), respectively, refers to additional standard signal processing, not explicitly included therein for the sake of simplicity in the notation as well as for being known to anyone skilled with the art, namely, discarding the invalid samples that result from the circular convolution inherent to the product of two frequency-domain sequences, such as in said (14) and (15). These arguments can be extended to the definition of

(k) and {right arrow over (Δ)}(k) “based on” (17) and (19), respectively, as well as to terms computed in preferred embodiments.

Preferably, the optimal step-size μ_(i,j,m)(k) is computed by either

$\begin{matrix} {{{\mu_{i,j,m}(k)} = \frac{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{\chi_{a,b,m}(k)}}}}}}{or}} & (20) \\ {{{\mu_{i,j,m}(k)} = {1 - \sqrt{1 - \frac{{\Phi_{i,j}(k)}{\chi_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{\chi_{a,b,m}(k)}}}}}}}},} & (21) \end{matrix}$

wherein Ψ_(m)(k) is a power spectrum of the non-cancellable components at the mth time block and Φ_(i,j)(k) is a power spectrum of the misalignment of each i,jth filter, wherein Ψ_(m)(k) and Φ_(i,j)(k) are determined by solving the set of linear equations

$\begin{matrix} {{{\Psi_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\chi_{i,j,m}(k)}{\Phi_{i,j}(k)}}}}} = {{E_{m}(k)}}^{2}} & (22) \\ {{{\mathrm{\Upsilon}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\chi_{i,j,{m - }}(k)}{\Phi_{i,j}(k)}}}}} = {{\mathcal{E}(k)}}^{2}} & (23) \\ {{{\mathrm{\Upsilon}(k)} + {4{\overset{\leftarrow}{T}(k)}{\Psi_{m}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\chi_{i,j,{m - }}(k)}{\Phi_{i,j}(k)}}}}} = {{\overset{\leftarrow}{\mathcal{E}}(k)}}^{2}} & (24) \\ {{{4{\overset{\rightarrow}{T}(k)}{\mathrm{\Upsilon}(k)}} + {\Psi_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\chi_{i,j,m}(k)}{\Phi_{i,j}(k)}}}}} = {{\overset{\rightarrow}{\mathcal{E}}(k)}}^{2}} & (25) \end{matrix}$

subject to inequality constraints

Y(k)>0, Ψ_(m)(k)>0, Φ_(0,0)(k)>0, . . . , Φ_(C−1,S−1)(k)>0;   (26)

wherein

-   X_(i,j,m)(k) corresponds to the kth power spectral bin of the     far-end signal at the ith channel, jth segment, and mth time block,     wherein said signal block is preferably windowed, -   (k) corresponds to the kth power spectral bin of the far-end signal     at the ith channel, jth segment, and m−     th time block, wherein said signal block is preferably windowed, -   Y(k) corresponds to a power spectrum of the non-cancellable     components at the m-     th block, -   T     )k) us the normalized look-backward update, computed as

(k)=

(k)/|E _(m)(k)|²,   (27)

-   -   and

-   {right arrow over (T)}(k) is the normalized look-forward update,     computed as

{right arrow over (T)}(k)={right arrow over (Δ)}(k)/|ε(k)|².   (28)

The set of linear equations with inequality constraints is one of the main foundations of the inventive method. Because the unknowns Y(k) and Ψ_(m)(k) appear in said set of linear equations in a balanced way, the condition of the problem is excellent. Removing one of the four equations would make one of those unknowns less visible, thus deteriorating significantly the condition of the whole problem (as the overall condition is bound by the worst of its parts). Because the number of equations is equal is to four, the inventive method is particularly suited to stereo systems C=2 with one segment per channel S=1, as this case leads to four unknowns.

Moreover, the inventive method is especially useful for general multi-channel setups, e. g. C>1, that are under frequent near-end activity since the power spectrum of the non-cancellable components Ψ_(m)(k) is obtained with high accuracy, and for the first time optimal continuous adaptation can be achieved regardless of the presence of near-end components, while in the state of the art a double-talk detector needs to assess whether there is a near-end signal to temporarily stop the update of all filter coefficients.

The first formula (20) for the optimal step size is simpler than the sec- and one (21), as the latter involves the root square operation; however, formula (21) delivers better results. Therefore, if the second formula is chosen, its Taylor approximation can be used, delivering similar performance at much lower computational complexity.

Another problem that can arise is when at least the number of channels or the number of segments per channel is larger than one, e. g. when the canceller is composed of several transversal filters: as the global error E_(m)(k) is used for the update of every filter, the misalignment of a given filter is propagated to the remaining filters upon the update, and vice versa, and thus slowing down the convergence of the entire adaptive system. To overcome this undesired drawback, one at a time any chosen r,sth filter can be considered not to be part of the canceller, e. g. its residual echo to be treated as non-cancellable component, and an additional look-backward error

(k) and an additional look-forward error {right arrow over (ε)}_(r,s)(k) involving the up- date off-line of all filters except the r,sth one are computed.

In order to employ the latter strategy, the invention provides a computer-implemented method for updating at least one frequency-domain filter co-efficient W_(i,j)(k) of the echo canceller, wherein at least one of the number of channels or the number of segments per channel is larger than one; and

the optimal step size μ_(i,j,m) is determined from said canceller output E_(m) (k) over the mth time block, from said canceller error ϵ(k) over the m−

th time block, from said look-backward error

(k), from said look-forward error {right arrow over (ϵ)}(k) as well as from at least one additional look-backward error

(k) and from at least one additional look-forward error {right arrow over (ε)}_(r,s)(k) for at least one r,sth filter, r and s being indices of the channel and the segment, respectively wherein

(k)=ε(k)−λ

(k),   (29)

wherein

(k) is based on

$\begin{matrix} {{\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}\sum\limits_{j}}\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}\sum\limits_{b}}{{X_{a,b,m}(k)}}^{2}} + \epsilon}{X_{i,j,{m - }}(k)}},{and}} & (30) \\ {{{\overset{\rightarrow}{\mathcal{E}_{r,s}}(k)} = {{E_{m}(k)} - {\lambda \; {\overset{\rightarrow}{\Delta_{r,s}}(k)}}}},} & (31) \end{matrix}$

wherein {right arrow over (Δ)}_(r,s)(k) is based on

$\begin{matrix} {\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}\sum\limits_{j}}\frac{{\mathcal{E}(k)}{X_{i,j,{m - }}^{*}(k)}}{{\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}\sum\limits_{b}}{{X_{a,b,{m - }}(k)}}^{2}} + \epsilon}{{X_{i,j,m}(k)}.}} & (32) \end{matrix}$

Including the information from the additional look-backward

(k) and look-forward {right arrow over (ε)}_(r,s)(k) errors allows the inventive method to explicitly acomplish a more accurate estimation of the optimal step size(s) μ_(r,s,m))(k), as well as implicitly improving the optimal step size for other i,jth filters, which translates in faster convergence.

In this embodiment, the optimal step-size μ_(i,j,m)(k) is preferably computed as per either (20) or (21), wherein the power spectrum Φ_(i,j)(k) of the misalignment of each i,jth filter are detrmined by solving said set of linear equations (22), (23), (24), (25), with additional linear equations for the at least one r,sth filter

$\begin{matrix} {{{Y(k)} + {4{\overset{\leftarrow}{T_{r,s}}(k)}{\Psi_{m}(k)}} + {4{\overset{\leftarrow}{T_{r,s}}(k)}{_{r,s,m}(k)}{{\Phi_{r,s}(k)}++}{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,k,{m - 1}}(k)}{\Phi_{i,j}(k)}}}}}} = {{\overset{\leftarrow}{ɛ_{r,s}}(k)}}^{2}} & (33) \\ {{{\Psi_{m}(k)} + {4{\overset{\rightarrow}{T_{r,s}}(k)}{Y(k)}} + {4{\overset{\rightarrow}{T_{r,s}}(k)}{_{r,s,{m - 1}}(k)}{{\Phi_{r,s}(k)}++}{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,k,{m - 1}}(k)}{\Phi_{i,j}(k)}}}}}} = {{\overset{\rightarrow}{ɛ_{r,s}}(k)}}^{2}} & (34) \end{matrix}$

subject to inequality constraints

Y(k)>0, Ψ_(m)(k)>0, Φ_(0,0)(k)>0, . . . , Φ_(C−1,S−1)(k)>0;   (35)

vherein

-   (k) is the normalized look-backward update excluding the r,sth     filter, computed as

(k)=

(k)/|E _(m)(k)/|²¹,   (36)

and

-   (k) is the normalized look-forward update excluding the r,sth     filter, computed as

_(r,s)(k)={right arrow over (Δ)}_(r,s)(k)/|ε(k)|².   (37)

These embodiments are especially useful not only in scenarios with fre- quent near-end activity,as discussed previously, but also for multi-channel and multi-segment setups, e. g. C>1 or S>1, as the glObal learning con- vergence is substantially improved, in particular by improving explicitly the estimation of the filter misalignment Φ_(r,s)(k), hence the convergence for each r,sth filter(s) therewith, while in the state of art the global error is spread uniformly through all filters, which leads to slower convergence.

Until now, it was assumed that the overshoot factor λ needed to be equal to 1 as this led to a good trade-off between misalignment reduction and amplification of the non-cancellable components. However, it has been analytically found that even better results can be achieved if the overshoot factor λ is chosen to be greater than one, in the range 1<λ≤2, and particularly substantially when λ=2. At said value the filter misalignment terms in the look-backward

(k) and look-forward {right arrow over (ϵ)}(k) errors have the same expected level as in the errors ϵ(k) and E_(m)(k), but the non-cancellable components turn out exactly two times larger in amplitude hence more “visible;” this fact translates into an estimation gain boost of the non-cancellable components on more than 6 dB. Likewise, an overshoot factor equal to 2 makes in particular the r,sth filter misalignment appear exactly two times larger in magnitude in both look-backward

(k) and look-forward {right arrow over (ε)}_(r,s)(k) errors, hence more “visible,” which translates into an estimation gain boost of said filter misalignment on more than 6 dB.

In a preferred embodiment of the invention, the method furthermore determines:

a power spectrum

_(m)(k) of the residual echo due to filter misalignmet at the mth block by means of

$\begin{matrix} {{{_{m}(k)} = {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}},} & (38) \end{matrix}$

and/or

a power spectrum

_(m)(k) of the echo beyond the canceller's time scope at the mth block by means of the accumulative method

m  ( k ) = γ  m - 1  ( k ) + γ  ∑ i = 0 C - 1   W i , S - 1  ( k )  2   i , S - 1 , m - 1  ( k ) , ( 39 )

wherein 0<γ<1, and/or

a power spectrum

_(m)(k) of the non-linear echo components at the filth block by means of

$\begin{matrix} {{{_{m}(k)} \propto {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\mu_{i,j,m}(k)}{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}},} & (40) \end{matrix}$

wherein ∝ (denotes proportional,

and subsequently an improved canceller output O_(m)(k) based on the canceller output E_(m)(k) and on at least one of the determined power spectra of residual echo due to the filter misalignment

_(m)(k), the echo beyond the canceller's time scope

_(m)(k), and the non-linear echo

_(m)(k).

The filter misalignment terms Φ_(i,j)(k) and the power spectra X_(i,j,m)(k) employed to evaluate

_(m)(k) and

_(m) (k) correspond to the same terms used to evaluate the optimal step size(s) (20) and (21). In consequence, those terms are re-used, hence keeping the computational complexity low while profiting from the high estimation accuracy of said terms. On the other hand, the term

_(m)(k) involves the filter W_(i,S−1)(k), which is quickly updated at every block by the optimal mechanism of the inventive method.

One way to obtain said improved canceller output O_(m)(k) with the canceller output E_(m)(k) while including the above mentioned terms (38), (39), and (40) is to use a Wiener filter or any other type known in the state of the art. If the preferred Wiener filter is to be implemented, the improved canceller output O_(m)(k) is determined as

$\begin{matrix} {{O_{m}(k)} = {{E_{m}(k)}{B_{m}(k)}}} & (41) \\ {{B_{m}(k)} = \left\lfloor \frac{{{E_{m}(k)}}^{2} - {\Lambda_{m}(k)}}{{{E_{m}(k)}}^{2}} \right\rfloor_{ɛ}} & (42) \\ {{\Lambda_{m}(k)} = {{_{m}(k)} + {_{m}(k)} + {_{m}(k)}}} & (43) \end{matrix}$

wherein

-   └ ┘ denotes low clipping by ε>0, -   E_(m)(k) is the canceller output, -   _(m)(k) is a power spectrum of the residual echo due to canceller     filter misalignment at the mth block, -   _(m)(k) is a power spectrum of the echo beyond the canceller's time     scope at the mth block, and -   _(m)(k) is a power spectrum of the non-linear echo component(s) at     the mth block.

The determination of the spectral power of the three residual echo terms (38), (39), and (40) are used for suppressing, e. g. filtering out (41), otherwise said residual echo components present in the canceller output E_(m)(k). in some cases, it can be preferred to only compute one or two of the above-mentioned three terms because one or two terms might be significantly lower with respect to the other(s). In order to deliver a listening signal, the improved canceller output O_(m)(k) is to be transformed to the time domain. Standard overlap-add processing, well known to anybody familiar with the art, can be used in order to avoid block-effects in the resulting time-domain output.

Preferably, the at least one filter coefficient W_(i,j)(k) is updated based on

$\begin{matrix} {{W_{i,j}^{new}(k)} = {{W_{i,j}(k)} + {{\mu_{i,j,m}(k)}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{{X_{i,j,m}(k)}}^{2} + \epsilon}.}}}} & (44) \end{matrix}$

Even though the inventive method governs a multi-channel/-segment echo canceller, the preferred update (44) resembles a single-filter adaptive system, as the normalization term involves only the i,jth far-end power spectrum |X_(i,j,m)(k)|², in contrast with an standard multi-filter canceller, whose normalization term involves the accumulation of all far-end power spectra. This subtle detail, a real novelty in the art, implies ultimately that the i,jth input data X*_(i,j,m)(k) is effectively normalized, and that the main responsibility of the update lies on the optimal step size μ_(i,j,m)(k) determined by the inventive method.

In a second aspect, the invention provides for an echo canceller having at least one channel and at least one segment, the echo canceller having filter coefficients W_(i,j)(k) being updateable in the frequency domain at a time block m, wherein the echo canceller is configured to:

determine a canceller output E_(m)(k) over the filth time block as the difference between Z_(m)(k) and a cancelling term based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,m}(k)}}}};} & (45) \end{matrix}$

determine a canceller error ϵ(k) over the in m−

(th time block as the difference between

(k) and a cancelling term based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,{m - }}(k)}}}};} & (46) \end{matrix}$

determine a look-backward error

(k) as

(k)=ε(k)−λ

(k)   (47)

wherein

(k) is based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{a,b,m}(k)}}^{2}}} + \epsilon}{X_{i,j,{m - }}(k)}}}};} & (48) \end{matrix}$

determine a look-forward error {right arrow over (ϵ)}(k) as

{right arrow over (ε)}(k)−E _(m)(k)−λ{right arrow over (Δ)}(k)   49)

wherein {right arrow over (Δ)}(k) is based on

$\begin{matrix} {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{ɛ(k)}{X_{i,j,{m - }}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{a,b,{m - }}(k)}}^{2}}} + \epsilon}{X_{i,j,m}(k)}}}};} & (50) \end{matrix}$

determine an optimal update step-size μ_(i,j,m)(k) from said canceller output E_(m)(k) over the mth time block, from said canceller error ϵ(k) over the E_(m)-

th time block, from said look-backward error

(k), and from said look-forward error {right arrow over (ϵ)}(k); and

update said at least one filter coefficient W_(i,j)(k) by using said optimal update step-size μ_(i,j,m)(k);

wherein

-   C corresponds to the number of channels i=0, . . . , C−1 of the echo     canceller, -   S corresponds to the number of segments j=0, . . . , S−1 per channel     of the echo canceller, -   is an integer different than zero, -   k denotes a frequency bin, -   ϵ is a positive value, -   Z_(m)(k) corresponds to the kth spectral bin of the microphone     signal at the mth time block, -   (k) corresponds to the kth spectral bin of the microphone signal at     the m−     th time block, -   X_(i,j,m)(k) corresponds to the kth spectral bin of the far-end     signal at the ith channel, jth segment, and mth time block, -   corresponds to the kth spectral bin of the far-end signal at the ith     channel, jth segment, and m−     th time block, -   λ is the overshoot factor, and -   a, b are channel and segment indices, respectively.

All advantages of the embodiments and variants of the method as described above also hold for the echo canceller.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention shall not be explained in more detail below on the basis of the preferred exemplary embodiments thereof with reference to the accompanying drawings, in which:

FIG. 1 illustrates the problem and scenario of multi-channel acoustic echo reduction.

FIG. 2 illustrates the proposed computer-based system to control and update the multi-channel acoustic echo cancellation, the residual echo suppression, and the comfort noise injection at every time block.

FIG. 3 illustrates the proposed computer-based apparatus to decompose the echo canceller output into the non-cancellable components and the residual echo for each channel and segment.

FIG. 4 discloses a computer-based method to compute the echo canceller errors at two different time blocks.

FIG. 5 illustrates the impact of the “overshoot” factor in the frequency-domain adaptive filter.

DETAILED DESCRIPTION OF THE INVENTION

In several embodiments of the present invention, a method and ap- paratus for multi-channel acoustic echo canceller 50 is disclosed, which governs a first stage of multi-filter adaptive echo cancellation 200 robust to near-end interferences and with improved update for each transversal filter, followed by a second stage of residual echo suppression 300 that re- duces the residual echo present in the canceller output to inaudible levels while preserving the quality of the main near-end signal, and followed by a third and last stage of comfort noise injection 400 that replenishes the suppressed near-end background noise with synthetic noise that resembles in level and spectrum said actual near-end background noise.

Acoustic Echo Cancellation

The output (4) of the multi-channel and multi-segment acoustic echo can- celler 200 object of the present invention can be either obtained directly in the time domain (2) or with the frequency-domain mechanism (5). Regardless of the choice, the canceller 50 is trained in the frequency domain.

In the present invention, the frequency-domain coefficients of the i,jth filter, wherein i and j are channel and segment indices, respectively, are updated in 230 according to the rule

W _(i,j) ^(new) =W _(i,j)+

{μ_(i,j,m∘) E _(m) ∘X* _(i,j,m)/(|X _(i,j,m)|²+ε)},   (51)

wherein index in denotes the north time block, that is, vector E_(m) contains the frequency-domain conversion of M time-domain output samples

E _(m) F[0 . . . , 0 e(m−1)M+1) . . . e(mM)]^(T),   (52)

while X_(i,j,m) is built as follows

X _(i,j,m) =F[x _(i,j)(mM−N+1) . . . x _(i,j)(mM)]^(T),   53)

the operation

{ } corresponds to the standard time-domain windowing to disregard invalid weight taps that result from the inherent circular convolution therein, see explanations after (10), ϵ>0 prevents division by zero or values near zero, and μ_(i,j,m) is the frequency-selective step size for the ith channel, jth segment, and mth time block. The appropriate selection of the step size(s) μ_(i,j,m), for i=0, . . . , C−1, and j=0, . . . , S−1, is important to guarantee stable and fast convergence of the adaptive echo canceller.

The canceller output at the mth time block can be represented as

$\begin{matrix} {{E_{m} = {A_{m} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}R_{i,j,m}}}}},} & (54) \end{matrix}$

wherein the first term A_(m), comprises all non-cancellable components—see (11) for definitions—and the second term corresponds to the residual echoes R_(i,j,m) yet to be cancelled.

A theoretical framework to combat interferences present in the can- celler training error is to selectively update the frequency-domain filter coefficients based on the magnitude of the interference signals. For instance, an optimal frequency-domain (FD) step size for a single filter was deduced in “A frequency-selective stepfactor control for an adaptive filter algorithm working in the frequency domain” Signal Processing 80, September 2000. A novel application thereof in the context of the present invention is

μ_(i,j,m) −E{|R _(i,j,m)|²}/E{|E _(m)|²},   (55)

wherein E{ } denotes statistical expectation. Another expression for an optimal FD step size found in “A frequency domain step-size control method or LMS algorithms,” IEEE Signal Processing Letters 17, February 2010. A novel application thereof in the context of the present invention is

μ_(i,j,m)=1−1−E{|R _(i,j,m)″² }/E{|E _(m)|²}.   (56)

Before proceeding further, it is worth mentioning that the standard update (9) is a particular case of the proposed update rule (51) when the frequency-domain step size is chosen as

$\begin{matrix} {\mu_{i,j,m} = {\mu {{X_{i,j,m}}^{2}/{\left( {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{X_{a,b,m}}^{2}}} \right).}}}} & (57) \end{matrix}$

Said standard step size (57) neither acknowledges different misalignment levels on each transversal filter R_(i,j,m) nor the presence of the interfering non-cancellable term A_(m). As result, the standard update exhibits slow and unstable convergence in most practical scenarios.

Computing the optimal frequency-domain step size as per (55) or (56) can be thus revamped into estimating the power spectral density of the interferences and the residual echoes. However, none of those C×S+1 unknown terms are directly measurable. The common belief for an expert in the art is that the effective and accurate estimation of the square magnitude of said terms A_(m) and R_(i,j,m), required in the evaluation of the optimal step size (55) or (56), is near to impossible.

We introduce hereby the following notation: A_(m)(k) represents the kth frequency bin of the frequency-domain vector A_(m), E_(m)(k) represents the kth frequency bin of the frequency-domain vector E_(m), and so on. The i,jth residual echo can be written as

R _(i,j,m)(k)=G _(i,j)(k)X _(i,j,m)(k),   (58)

wherein G_(i,j)(k) denotes the misalignment in the i,jth filter. We can assume the following statistical relations

$\begin{matrix} {{{E\left\{ {{G_{i,j}^{*}(k)}{A_{m}(k)}} \right\}} = 0},} & (59) \\ {{E\left\{ {{G_{i,j}^{*}(k)}{G_{a,b}(k)}} \right\}} = \left\{ {\begin{matrix} {{E\left\{ {{G_{i,j}(k)}}^{2} \right\}},} & {{a = i},{b = j}} \\ {0,} & {otherwise} \end{matrix}.} \right.} & (60) \end{matrix}$

Based on the previous assumptions, the frequency-domain step as per (55) can be recast as follows

$\begin{matrix} {{{\mu_{i,j,m}(k)} = \frac{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{_{a,b,m}(k)}}}}}},} & (61) \end{matrix}$

wherein Φ_(i,j)(k) and Ψ_(m)(k) are the power spectral density of the misalignment of each i,jth filter and that of the non-cancellable term respectively

Φ_(i,j)(k)=E{|G _(i,j)(k)|²}  (62))

Ψ_(m)(k)=E{|A _(m)(k)|²},   (63)

and X_(1,j,m)(k) is the expected power spectrum of the i,jth far-end signal at the mth block

X _(i,j,m)(k)=E{|X _(i,j,m)(k)|²}.   (64)

Said expected power spectrum (64) is preferably obtained from the power spectrum of a windowed signal block.

The method to accurately estimate said terms (62) and (63) disclosed in the present invention is carried out in 110 according to the reasoning and arguments exposed in what follows. It is known in the field of machine learning that the objective assessment of a learning machine, such as the set of adaptive filters of concern, must be performed on testing data statistically independent from the training data. This important axiom implies hereby that the weight update performed with the data from the mth time block can only be assessed with data from another time block, and never with the very mth block.

The immediately-preceding m−1th time block can act as such a “testing” block, hence not incurring any delay because said block is already o available. Moreover, because both testing and updating time blocks are consecutive in time, the actual echo path at each one is considered to be the same, which is an important requirement for the inventive method to perform best. Other blocks from different times, i. e., an m−

th time block, wherein

is an integer different than zero, could be used as long as the latter requirement is met. For ease of explanation, the in m−1th time block, e. g.

=1, is used as an example in the following description.

Supported on the embodiments from FIG. 3 and FIG. 4, in a first stage two errors are computed, namely the canceller output (e. g. error) over the mth tune-block E_(m) in

$\begin{matrix} {{E_{m} = {Z_{m} - {_{2}\left\{ {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{W_{i,j} \circ X_{i,j,m}}}} \right\}}}},} & (65) \end{matrix}$

wherein Z_(m) corresponds to the spectral samples of the microphone signal z(n) at the With block, the operator

{ } corresponds to the time-domain windowing upon the filter operation to disregard invalid samples that result from the inherent circular convolution therein, see (8), (10) and (52) for explanations; and

the “look-backward” error

, in 120B, obtained as follows: the canceller weights are updated in 130 according to the classical frequency-domain adaptive filtering rule (9) with said mth output E_(m), and the impact

thereof is assessed over the m−1th block. that is,

$\begin{matrix} {{\overset{\leftarrow}{\mathcal{E}} = {Z_{m - 1} - {_{2}\left\{ {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\left( {W_{i,j} + {\lambda \; \overset{}{\Omega_{i,j}}}} \right) \circ X_{i,j,{m - 1}}}}} \right\}}}},} & (66) \end{matrix}$

wherein Z_(m−1) corresponds to the spectral samples of the microphone signal z(n) at the m−1block, and

is the i, jth look-backward weight update

$\begin{matrix} {\overset{}{\Omega_{i,j}} = {_{1}{\left\{ {{E_{m} \circ X_{i,j,m}^{*}}/\left( {{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{X_{a,b,m}}^{2}}} + \epsilon} \right)} \right\}.}}} & (67) \end{matrix}$

The constant λ in (66) is the “overshoot” factor, to be addressed later.

A positive outcome from the previous operations is namely that the non-cancellable term A_(m) can not only be observed in the mth error (65), as outlined in (54), but also in the look-backward error (66). However, the non-cancellable term A_(m−1) at the in m−1th time block unfortunately appears in the look-backward error (66) as new unknown in the problem. This situation invites us to compute two additional errors, this time by swapping the training and testing time blocks. Hence, the m−1th error ϵ is computed as

$\begin{matrix} {{\mathcal{E} = {Z_{m - 1} - {_{2}\left\{ {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{W_{i,j} \circ X_{i,j,{m - 1}}}}} \right\}}}},} & (68) \end{matrix}$

and the “look-forward” error {right arrow over (ε)} as

$\begin{matrix} {{\overset{->}{\mathcal{E}} = {Z_{m} - {_{2}\left\{ {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\left( {W_{i,j} + {\lambda \; \overset{}{\Omega_{i,j}}}} \right) \circ X_{i,j,m}}}} \right\}}}},} & (69) \end{matrix}$

wherein {right arrow over (Ω)}_(i,j) is the i,jth look-forward weight update

$\begin{matrix} {\overset{}{\Omega_{i,j}} = {_{1}{\left\{ {{\mathcal{E} \circ X_{i,j,{m - 1}}^{*}}/\left( {{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{X_{a,b,{m - 1}}}^{2}}} + \epsilon} \right)} \right\}.}}} & (70) \end{matrix}$

The look-backward error (66) and look-forward error (69) can be also obtained in a compact fashion as

=ε−λ

  (71)

{right arrow over (ε)}=E _(m)−λ{right arrow over (Δ)},   (72)

wherein

and {right arrow over (Δ)} and A are the impact of the look-backward and look-forward update respectively

$\begin{matrix} {\overset{\leftarrow}{\Delta} = {_{2}\left\{ {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\overset{}{\Omega_{i,j}} \circ X_{i,j,{m - 1}}}}} \right\}}} & (71) \\ {\overset{->}{\Delta} = {_{2}{\left\{ {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\overset{}{\Omega_{i,j}} \circ X_{i,j,m}}}} \right\}.}}} & (72) \end{matrix}$

In the prior art “Method and apparatus for updating filter coefficients of an adaptive echo canceller,” EP 2930917 B1, disclosed by the author of the present invention, the evaluation of only three errors was thought sufficient to estimate the terms (62) and (63) for a single-channel single-segment echo canceller. However, such a strategy leads often to ill-conditioned problems because the presence of the unknown terms in the problem model is unbalanced. Including both the look-backward (77) and the look-forward (78) errors yields a balanced well-conditioned estimation problem.

In order to get the equations that relate said four errors E_(m), ϵ,

, and {right arrow over (ϵ)} with the unknown terms required to evaluate the optimal step size(s), said spectral errors (65) and (66) can be recast in term of the filter misalign- ment G_(i,j)(k) as follows

$\begin{matrix} {{{E_{m}(k)} \equiv {{A_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{G_{i,j}(k)}{X_{i,j,m}(k)}}}}}},} & (75) \end{matrix}$

$\begin{matrix} {{{\mathcal{E}(k)} \equiv {{A_{m - 1}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{G_{i,j}(k)}{X_{i,j,{m - 1}}(k)}}}}}},} & (76) \\ {{{\overset{\leftarrow}{\mathcal{E}}(k)} \equiv {{A_{m - 1}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{G_{i,j}(k)}{X_{i,j,{m - 1}}(k)}}}} - {\lambda \; {\overset{\leftarrow}{\Delta}(k)}}}},} & (77) \\ {{{\overset{->}{\mathcal{E}}(k)} \equiv {{A_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{G_{i,j}(k)}{X_{i,j,m}(k)}}}} - {\lambda \; {\overset{->}{\Delta}(k)}}}},} & (78) \end{matrix}$

wherein ≡ denotes equivalency.

Translating the previous equation to power spectral densities finally leads to one of the main advantages of the invention. Supported on the assumptions of uncorrelation (59) and (60) between the terms involved, it can be concluded

$\begin{matrix} {{E\left\{ {{E_{m}(k)}}^{2} \right\}} = {{\Psi_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,m}(k)}{\Phi_{i,j,m}(k)}}}}}} & (79) \\ {{{E\left\{ {{\mathcal{E}(k)}}^{2} \right\}} = {{\mathrm{\Upsilon}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,{m - 1}}(k)}{\Phi_{i,j,m}(k)}}}}}},} & (80) \end{matrix}$

wherein term Y(k)=E{|A_(m−1)(k)|²} is unknown and not used in the evaluation of the optimal step size(s) (61).

In order to translate the look-backward (77) and look-forward (78) errors to power spectral densities, the effect of the overshoot factor λ needs to be first clarified. It can be deduced that the reduction of the filter misalignment (62) is ruled by the power factor

f(λ)=exp(−2λ+λ²).   (81)

On the other hand, the update equations (77) and (78) yield the amplifica- tion of the non-cancellable terms A_(m) and A_(m−1) proportionally t λ, that is, its power (63) gets amplified by

g(λ)=λ².   (82)

The illustration of this new tradeoff is brought in FIG. 5, wherein the solid line corresponds to (81), and the dashed line to (82). An attractive situation appears when λ is set to two (λ=2): in this “overshoot” case, the expected misalignment level remains the same, f(2)=1, but the power of the non- cancellable term is amplified by a large factor, e. g. g(2)=4.

Such a value, λ=2, has never been used as step size in adaptive filtering because the resulting adaptive system would not converge. However, in the scope of this invention, said overshoot off-line update used in (77) and (78) makes the interference term A_(m), as well as A_(m−1), appear 6 dB larger in the look-backward error and look-forward error respectively. Henceforth, the value λ=2 is adopted in 130, but other λ values can also be used as long as rules (81) and (82) are observed.

The power spectral densities of the set of spectral errors (78) can be thus written as

$\begin{matrix} {{E\left\{ {{\overset{\leftarrow}{\mathcal{E}}(k)}}^{2} \right\}} = {{\mathrm{\Upsilon}(k)} + {4{\overset{\leftarrow}{T}(k)}{\Psi_{m}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,{m - 1}}(k)}}}}}} & (83) \\ {{{E\left\{ {{\overset{->}{\mathcal{E}}(k)}}^{2} \right\}} = {{\Psi_{m}(k)} + {4{\overset{->}{T}(k)}{\mathrm{\Upsilon}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}}},} & (84) \end{matrix}$

wherein

(k) and {right arrow over (T)}(k) are the normalized update in look-backward and look-forward errors respectively

(k)=

(k)|²/|E _(m)(k)|²   (85)

{right arrow over (T)}(k)=|{right arrow over (Δ)}(k)|²/|ε(k)|².  (86)

Said four equations (79), (80), (83), and (84) are used to obtain the terms (62) and (63), which are required in the evaluation of the optimal frequency-domain step size(s). Said equations can be written as a system of linear equations subject to inequality constraints. Without loss of gener- ality we exemplify the solution system over a stereo scenario, C=2, with one segment per channel, S=1, in what follows

${\begin{bmatrix} 1 & 0 & {_{0,0,{m - 1}}(k)} & {_{1,0,{m - 1}}(k)} \\ 0 & 1 & {_{0,0,m}(k)} & {_{1,0,m}(k)} \\ 1 & {4{\overset{\leftarrow}{T}(k)}} & {_{0,0,{m - 1}}(k)} & {_{1,0,{m - 1}}(k)} \\ {4{\overset{->}{T}(k)}} & 1 & {_{0,0,m}(k)} & {_{1,0,m}(k)} \end{bmatrix}\begin{bmatrix} {\mathrm{\Upsilon}(k)} \\ {\Psi_{m}(k)} \\ {\Phi_{0,0}(k)} \\ {\Phi_{1,0}(k)} \end{bmatrix}} = \begin{bmatrix} {{\mathcal{E}(k)}}^{2} \\ {{E_{m}(k)}}^{2} \\ {{\overset{\leftarrow}{\mathcal{E}}(k)}}^{2} \\ {{\overset{->}{\mathcal{E}}(k)}}^{2} \end{bmatrix}$

subject to

Y(k)>0), Ψ_(m)(k)>0, Φ_(0,0)(k)>0, Φ_(1,0)(k)>0.   (87)

Said inverse linear problem with inequality constraints (87) requires an iterative methodology such as linear programming. in order to speed up the process (to reduce the number of iterations), a good initial guess is welcome. The very solution obtained at the previous m−1th time block can serve as said initialization. The solution to (87) is computed in 150.

At this point it is important to remark that the m−

th time block precedes the mth one, e. g.

>0 and preferably

=1. Adopting a negative value,

<0, would incur an undesired processing delay, as the m−

th time block would be yet to come after the mth one. However, that option does not actually differ in essence from said preferred case because both time blocks serve as training and testing data on any of the look-forward/-backward errors: because of this symmetry in the solution system (87), the option

<0 becomes moot.

It is important to point out that any sub-matrix in (87) involving only Ψ_(m)(k) and Y(k) has full rank, e. g. the solution obtained for the non-cancellable terms is accurate. This proves theoretically that the resulting step size provides “instantaneous” robustness against double-talk, which was one of the major challenges yet to be effectively solved by the state of the art.

On the other hand, the estimation of the filter misalignment becomes ill-conditioned as the number of filters increases. In the practice, the solution accomplished with a normal initialization, such as that from the m−1th block, outperforms the state of art. Nonetheless, in order to improve the condition of this problem when the number of channels or the number of segments per channel is large, a second embodiment of the invention is disclosed in what follows.

Improving the estimation accuracy for the misalignment power requires evaluating at most two additional errors, and including the resulting linear equations into the original system. The strategy behind this methodology is namely not to treat said r,sth filter as part of the adaptive system, e. g. to consider its misalignment as a non-cancellable “interference” term, and to update off-line all canceller filters but the r,sth one, resulting in the additional look-backward error

=ε−λ

  (88)

wherein

is the impact of a look-backward filter update except for the (r,s) th filter

$\begin{matrix} {{\overset{}{\Delta_{r,s}} = {_{2}\left\{ {\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}\sum\limits_{j}^{\;}}_{1}{\left\{ {{E_{m} \circ X_{i,j,m}^{*}}/\left( {\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}\sum\limits_{b}^{\;}}{X_{a,b,m}}^{2}} \right)} \right\} \circ X_{i,j,{m - 1}}}} \right\}}},} & (89) \end{matrix}$

and the additional look-forward error

{right arrow over (ε)}_(r,s)=ε−λ{right arrow over (Δ)}_(r,s)   (90)

wherein {right arrow over (α)}_(r,s) is the impact of a look-forward filter update except for the (r,s)th filter

$\begin{matrix} {\overset{}{\Delta_{r,s}} = {_{2}{\left\{ {\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}\sum\limits_{j}^{\;}}_{1}{\left\{ {{\mathcal{E} \circ X_{i,j,{m - 1}}^{*}}/\left( {\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}\sum\limits_{b}^{\;}}{X_{a,b,{m - 1}}}^{2}} \right)} \right\} \circ X_{i,j,m}}} \right\}.}}} & (90) \end{matrix}$

The additional look-backward error

and look-forward error {right arrow over (ε)}_(r,s) for A=2, bring two important additional relations

$\begin{matrix} {{E\left\{ {{\overset{}{\mathcal{E}_{r,s}}(k)}}^{2} \right\}} = {{\Psi_{m - 1}(k)} + {4\; {\overset{}{T_{r,s}}(k)}{\Psi_{m}(k)}} + {4\; {\overset{}{T_{r,s}}(k)}{\Phi_{r,s}(k)}{_{r,s,m}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,{m - 1}}(k)}}}}}} & (92) \\ {{{E\left\{ {{\overset{}{\mathcal{E}_{r,s}}(k)}}^{2} \right\}} = {{\Psi_{m}(k)} + {4\; {\overset{}{T_{r,s}}(k)}{\Psi_{m - 1}(k)}} + {4\; {\overset{}{T_{r,s}}(k)}{\Phi_{r,s}(k)}{_{r,s,{m - 1}}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}}},} & (93) \end{matrix}$

wherein

(k)=

(k)|²/|E _(m)(k)|²   (94)

{right arrow over (T)} _(r,s)(k)=|{right arrow over (Δ)}_(r,s)(k)²/|ε(k)|².   (95)

Said four equations (79), (80), (83), (84), in addition to (92) and (93). embody the main algorithmic foundations to obtain the terms (62) and (63). For the sake of simplicity let us consider a one-chanenel system, C=1, composed of two segments, S=2. Since the filter W_(0,0) of the first segment takes care of the early echoes, which are prone to change and have larger energy than the late ones, it is desired to improve the tracking performance for said filter. For the sake of simplicity, we drop the frequency bin index k whenever convenient, that is denotes X_(i,j,m) denotes X_(i,j,m)(k), and so on, the final solution system results as follows

subject to

Y(k)>0, Ψ_(m)(k)>0, Φ_(0,0)(k)>0, Φ_(0,1)(k)>0.   (96)

The misalignment Φ_(0,0)(k) is observed in the look-backward/-forward errors

(k) and {right arrow over (ε)}_(0,0)(k) with a gain of 6 dB. It is evident for anyone familiar with the art that the inclusion of said two additional equations, that is, the last two rows in (96), improves the condition of the problem.

The solution to (96) is computed in 150. Upon said solution, the optimal FD step size as per (56) is evaluated in 180 as follows

$\begin{matrix} {{\mu_{i,j,m}(k)} = {1 - {\sqrt{1 - \frac{{\Phi_{i,j,m}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b,m}(k)}{_{a,b,m}(k)}}}}}}.}}} & (97) \end{matrix}$

Residual Echo Suppression

Due to very long echo paths, to an adaptive system in early convergence, or to non-linear phenomena, echo components in the canceller output (11) may still be audible. The non-linear processing (NLP) 300 aims to suppress the residual echo components still present in the canceller output to inaudible levels while preserving the integrity of the main near-end sounds as much as possible. In order to perform an effective NLP, accurate estimation of the residual echo in level and spectrum is important.

The residual echo present in the canceller output (11) is composed of the terms R_(m)(k), Q_(m)(k) and P_(m)(k). As said terms are uncorrelated with each other, the estimated power spectrum of the residual echo is built additively in 330 as follows

∧_(m)(k)=

_(m)(k)+

_(m)(k)+

_(m)(k),   (98)

wherein

_(m)(k),

_(m)(k), and

_(m)(k) are the estimated power spectrum of every term in the residual echo respectively,

The power spectrum of the residual echo due to filter misalignment is readily given by

$\begin{matrix} {{{_{m}(k)} = {{E\left\{ {{R_{m}(k)}}^{2} \right\}} = {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}}},} & (99) \end{matrix}$

wherein Φ_(i,j)(k) is outcome of the generic decomposition problem (96).

The power spectrum of the residual echo due to long acoustic echo paths (L_(H)>>S×L) can be defined as follows

m  ( k ) = E  {  m  ( k )  2 } = ∑ i = 0 C - 1  ∑ j = S ∞   W i , j  ( k )  2   i , j , m  ( k ) , ( 100 )

wherein W_(i,j)(k) for j=S, . . . , represent filters beyond the time scope of the canceller, hence unknown “virtual” filters. Said terms in (100) can be approximated according to the reasoning that follows.

Echo paths present typically an exponential decay especially in the last part of its impulse response. The time-domain filter w_(i,S−1)(n), regardless of the channel, is thus assumed to follow the model

E{log|w _(i,S−1)(n)|²}=−τn+a,   (101)

wherein τ is the time constant related to said filter, and the level a is not relevant henceforth; the time constant τ can be simply obtained with linear regression over said square filter weights in logarithm scale, as pointed out in (101). The power spectrum of said “virtual” filters in (100) can be thus approximated as

|W _(i,S−1+α)(k)|²≃γ^(α) |W _(i,S−1)(k)|²,   (102)

wherein W_(i,S−1)(k) is an existing filter, α≥1 is an integer, and γ=exp(−τL). By replacing (102) into (100), and because X_(ij,m)(k)=X_(i,j-1,m−1)(k), the power spectrum of the residual echo beyond the canceller scope is obtained with the following accumulative formula

m  ( k ) = γ  m - 1  ( k ) + γ  ∑ i = 0 C - 1   W i , S - 1  ( k )  2   i , S - 1 , m - 1  ( k ) , ( 103 )

wherein all elements involved in said formula are available.

Finally, the non-linear echo components are correlated to the input signals x_(i)(n) somewhat in an unpredictable way. This means that the adaptive filter usually jitters or fluctuates when non-linear echo is present in the training error. Based on the misalignment Φ_(i,j)(k) and step size μ_(i,j,m)(k) Obtwined from the decomposition problem (96), the non-linear residual echo is readily obtained as follows

$\begin{matrix} {{{_{m}(k)} \propto {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\mu_{i,j,m}(k)}{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}},} & (104) \end{matrix}$

wherein ∝ denotes proportional to.

Upon the estimated overall residual echo ∧_(m)(k), several ways to carry out the NLP operation by 300 are available, such as with the Wiener filter, minimum mean-square error, perceptual enhancement, et cetera. As example, the Wiener filter can be approximated as follows

$\begin{matrix} {{{B_{m}(k)} = \left\lfloor \frac{{{E_{m}(k)}}^{2} - {\Lambda_{m}(k)}}{{{E_{m}(k)}}^{2}} \right\rfloor_{ɛ}},} & (105) \end{matrix}$

wherein └ ┘ _(ε) denotes low clipping by ϵ>0. Finally, the frequency-domain output of the acoustic echo control system is obtained by

O _(m)(k)=E _(m)(k)B _(m)(k).   106)

In order to deliver a listening signal, the frequency-domain output O_(m)(k) is transformed to the time domain. Standard overlap-add processing must be considered to avoid block-effects in the resulting output. Said processing is well known to any person familiar with the art.

Comfort Noise Injection

The echo cancellation 200 along with the NLP operation 300 delivers an echo-free output (first Objective in echo control), that is

O _(m)(k)≃D _(m)(k)B _(m)(k)+V _(m)(k)B _(m)(k).   (107)

Since the magnitude of the residual echo is significantly lower than that of the main near-end signal, hence D_(m)(k) B_(m)(k)≃D_(m)(k), the main near-end signal goes through nearly undistorted upon the NLP (second objective in echo control). We can thus approximate the previous output (107) as

O _(m)(k)≃D _(m)(k)+V _(m)(k) B _(m)(k).   (108)

However the near-end background noise in (108), e. g. V_(m)(k) B_(m)(k), suffers fluctuations in level and spectrum. In order to replenish the background noise in 400 as per (13) or equivalent technique and deliver the so same perceptual impression (third and last objective in echo control), accurate estimation thereof in level and spectrum is important.

In case of far-end inactivity (an event that is straightforward to detect), hence B_(m)(k)=1, the background noise can be estimated from the power spectrum |O_(m)(k)=1, during (short) periods of silence. However, the injec- tion of comfort noise is actually required in the opposite case, that is, during far-end activity, hence 0≤B_(m)(k)<1. Therefore, being able to track the background noise on any situation, hence from the original canceller output E|E_(m)(k)|², represents the main challenge to address hereby.

The usual approach to background noise estimation is to obtain the power spectral floor from the most recent K canceller outputs

Γ_(m)(k)={|E _(m)(k)|² , |E _(m−1)(k)|² , . . . , |E _(m−K+)1(k)|²}  (109)

either by averaging selected items within Γ_(m), or with minimum statistics over the set Γ_(m)(k), et cetera. Let

{Γ_(m)(k)}, denote a generic method to obtain said spectral floor from the sets Γ_(m) (k).

The present invention proposes to estimate the power spectrum of the background noise in 430 according to

Ω_(m)(k)=└

{Γ_(m)(k)}−

{

_(m)(k)}┘_(δ(k))   (110)

wherein δ(k) represents the minimum comfort noise for the kth frequency bin, and

_(m)(k) contains the K most recent time spectral snapshots of the residual echo power, obtained with (98) during the NLP phase

_(m)(k)={∧_(m)(k), ∧_(m−1)(k), . . . , ∧_(m−k+1)(k}.

The proposed rule (110) involves the computation of a spectral floor “two times”, once for the set Γ_(m)(k) and then for

_(m)(k). Although it demands larger computational complexity it delivers accurate results. Evaluating only one spectral floor over the difference set Γ_(m)(k)−

_(m)(k) dpes not lead in general to the same result, that is

└

{Γ_(m)(k)}−

{

_(m)(k)}┘_(δ(k))≠

{└Γ_(m)(k)−

_(m)(k)┘_(δ(k)}.)

The invention is not restricted to the specific embodiments described in detail herein, but encompasses all variants, combinations and modifications thereof that fall within the framework of the appended claims. 

What is claimed is:
 1. A computer-implemented method for updating at least one frequency-domain filter coefficient W_(i,j)(k) of an echo canceller having at least one channel and at least one segment per channel, the filter coefficients of the echo canceller being updateable in the frequency domain at a time block m comprising: determining a canceller output E_(m)(k) over the nth time block as the difference between Z_(m)(k) and a cancelling term based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,m}(k)}}}};$ determining a canceller error ϵ(k) over the m−

th time block as the difference between

(k) and a cancelling term based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,{m - }}(k)}}}};$ determining a look-backward error

(k) as

(k)−εk) −

(k), wherein

(k) is based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{a,b,m}(k)}}^{2}}} + \epsilon}{X_{i,j,{m - }}(k)}}}};$ determining a look-forward error {right arrow over (ϵ)}(k) as {right arrow over (Δ)}(k)=E _(m)(k)−∧{right arrow over (Δ)}(k), wherein {right arrow over (Δ)}(k) is based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{\mathcal{E}(k)}{X_{i,j,{m - }}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{a,b,{m - }}(k)}}^{2}}} + \epsilon}{X_{i,j,m}(k)}}}};$ determining an optimal update step size μ_(i,j,m)(k) from said canceller output E_(m)(k) over the nth time block, from said canceller error ϵ(k) over the m−

th time block, from said look- backward error

(k), and from said look-forward error {right arrow over (ϵ)}(k) and updating said at least one filter coefficient W_(i,j)(k) by using said optimal update step-size μ_(i,j,m)(k); wherein C corresponds to the number of channels i=0, . . . , C−1 of the echo canceller, S corresponds to the number of segments j=0, . . . , S−1 per channel of the echo canceller,

is an integer different than zero, k denotes a frequency bin index, ϵ is a positive value, Z_(m)(k) corresponds to the kth spectral bin of a microphone signal at the mth time block,

(k) corresponds to the kth spectral bin of the microphone signal at the m−

th time block, X_(i,j,m)(k) corresponds to the kth spectral bin of a far-end signal at the ith channel, jth segment, and mth time block,

(k) corresponds to the kth spectral bin of the far-end signal at the ith channel, jth segment, and m−

th time block, λ is an overshoot factor, and a, b are channel and segment indices, respectively.
 2. The method according to claim 1, wherein the optimal step size μ_(i,j,m)(k) is computed by either ${\mu_{i,j,m}(k)} = \frac{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{X_{a,b,m}(k)}}}}}$ or ${{\mu_{i,j,m}(k)} = {1 - \sqrt{1 - \frac{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{_{a,b,m}(k)}}}}}}}},$ wherein Ψ_(m)(k) is a power spectrum of the non-cancellable components at the nth time block and Φ_(i,j)(k) is a power spectrum of the misalignment of each i,jth filter, wherein Ψ_(m)(k) and Ψ_(i,j)(k) are determined by solving the set of linear equations ${{\Psi_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,m}(k)}{\Phi_{i,j}(k)}}}}} = {{E_{m}(k)}}^{2}$ ${{\mathrm{\Upsilon}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,{m - }}(k)}{\Phi_{i,j}(k)}}}}} = {{\mathcal{E}(k)}}^{2}$ ${{\mathrm{\Upsilon}(k)} + {4{\overset{\leftarrow}{T}(k)}{\Psi_{m}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,{m - }}(k)}{\Phi_{i,j}(k)}}}}} = {{\overset{\leftarrow}{\mathcal{E}}(k)}}^{2}$ ${{4{\overset{->}{T}(k)}{\mathrm{\Upsilon}(k)}} + {\Psi_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,m}(k)}{\Phi_{i,j}(k)}}}}} = {{\overset{->}{\mathcal{E}}(k)}}^{2}$ subject to inequality constraints Y(k)>0, Ψ _(m)(k)×0, Ψ _(0,0)(k)>0, . . . , Ψ_(C−1,S−1)(k)>0; wherein X_(i,j,m)(k) corresponds to the kth power spectral bin of the far-end signal at the ith channel, jth segment, and mth time block,

(k) corresponds to the kth power spectral bin of the far-end signal at the ith channel, jth segment, and m−

th time block,n-cancellable components at the m−

block,

(k) is the normalized look-backward update, computed as

(k)=

(k)/|E _(m)(k)|², and {right arrow over (T)}(k) is the normalized look-forward update, computed as {right arrow over (T)}(k)={right arrow over (Δ)}k)/|ε(k)|²,
 3. The method according to claim 2, wherein at least one of the number of channels and the number of segments per channel is larger than one; and the optimal step size μ_(i,j,m)(k) is determined from said canceller output E_(m)(k) over the mth time block, from said canceller error ϵ(k) over the m−

th time block, from said look-backward error

(k), from said look-forward error {right arrow over (ϵ)} (k) as well as from at least one additional look-backward error

(k) and from at least one additional look-forward error {right arrow over (ε)}_(r,s)(k) for at least one r,sth filter, r and s being indices of the channel and the segment, respectively, wherein

(k)=ε(k)−λ

(k). (k) (k) (k) wherein

(k) is based on ${\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}\sum\limits_{j}}\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}\sum\limits_{b}}{{X_{a,b,m}(k)}}^{2}} + \epsilon}{X_{i,j,{m - }}(k)}},{and}$ ${{\overset{}{\mathcal{E}_{r,s}}(k)} = {{E_{m}(k)} - {\lambda \; {\overset{}{\Delta_{r,s}}(k)}}}},$ {right arrow over (Δ)} wherein (k) is based on $\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}\sum\limits_{j}}\frac{{\mathcal{E}(k)}{X_{i,j,{m - }}^{*}(k)}}{{\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}\sum\limits_{b}}{{X_{a,b,{m - }}(k)}}^{2}} + \epsilon}{{X_{i,j,m}(k)}.}$
 4. The method according to claim 2, wherein the power spectrum Ψ_(m)(k) of the non-cancellable components and the power spectrum Φ_(i,j)(k) of the misalignment of each i,jth filter are determined by solving said set of linear equations with additional linear equations for the at least one r,sth filter ${{\mathrm{\Upsilon}(k)} + {4{\overset{}{T_{r,s}}(k)}{\Psi_{m}(k)}} + {4{\overset{}{T_{r,s}}(k)}{_{r,s,m}(k)}{{\Phi_{r,s}(k)}++}{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,{m - 1}}(k)}{\Phi_{i,j}(k)}}}}}} = {{\overset{}{\mathcal{E}_{r,s}}(k)}}^{2}$ ${{\Psi_{m}(k)} + {4{\overset{}{T_{r,s}}(k)}{\mathrm{\Upsilon}(k)}} + {4{\overset{}{T_{r,s}}(k)}{_{r,s,{m - 1}}(k)}{{\Phi_{r,s}(k)}++}{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,m}(k)}{\Phi_{i,j}(k)}}}}}} = {{\overset{}{\mathcal{E}_{r,s}}(k)}}^{2}$ subject to inequality constraints Y(k)>0, Ψ_(m)(k)>0, Ψ_(0,0)(k)>0, . . . , Ψ_(C−1,S−1)(k)>0; wherein

(k) is the normalized look-backward update excluding the r,sth filter, computed as

(k)=

(k)/|E _(m)(k)|², and {right arrow over (T)}_(r,s)(k) is the normalized look-forward update excluding the r,sth filter, computed as {right arrow over (T)} _(r,s)(k)={right arrow over (Δ)}_(r,s)(k)/|ε(k)|².
 5. The method according to claim 1, wherein the overshoot factor λ is in the range 1<λ≤2.
 6. The method according to claim 1, characterized by determining a power spectrum R_(m)(k) of the residual echo due to filter misalignment at the mth block by means of ${{_{m}(k)} = {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}},$ and subsequently an improved canceller output O_(m)(k) based on the canceller output E_(m)(k) and on said determined power spectrum R_(m)(k) of the residual echo due to the filter misalignment.
 7. The method according to claim 1, characterized by determining a power spectrum Q_(m)(k) of the echo beyond the canceller's time scope at the mth block by means of the accumulative method m  ( k ) = γ  m - 1  ( k ) + γ  ∑ i = 0 C - 1   W i , S - 1  ( k )  2   i , S - 1 , m - 1  ( k ) , wherein 0<γ<1. and subsequently an improved canceller output O_(m)(k) based on the canceller output E_(m)(k) and on said determined power spectrum Q_(m)(k) of the echo beyond the canceller's time scope.
 8. The method according to claim 1, characterized by determining a power spectrum P_(m)(k) of the non-linear echo components at the mth block by means of ${{_{m}(k)} \propto {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{\mu_{i,j,m}(k)}{\Phi_{i,j}(k)}{_{i,j,m}(k)}}}}},$ wherein α denotes proportional, and subsequently an improved canceller output O_(m)(k) based on the canceller output E_(m)(k) and on said determined power spectrum P_(m)(k) of the non-linear echo components.
 9. The method according to claim 1, wherein the method determines an improved canceller output O_(m)(k) as O_(m)(k) = E_(m)(k)B_(m)(k) ${B_{m}(k)} = \left\lfloor \frac{{{E_{m}(k)}}^{2} - {\Lambda_{m}(k)}}{{{E_{m}(k)}}^{2}} \right\rfloor_{ɛ}$ Λ m  ( k ) =  m  ( k ) + m  ( k ) +  m  ( k ) , wherein └ ┘_(ε) denotes low clipping by ε>0, E_(m)(k) is the canceller output, R_(m)(k) is a power spectrum of the residual echo due to filter misalignment at the mth block,

_(m)(k) is a power spectrum of the echo beyond the canceller's time scope at the mth block, and P_(m)(k) is a power spectrum of the non-linear echo components at the mth block.
 10. The method according to claim 1, wherein the at least one filter coefficient W_(i,j)(k) is updated based on ${W_{i,j}^{new}(k)} = {{W_{i,j}(k)} + {{\mu_{i,j,m}(k)}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{{X_{i,j,m}(k)}}^{2} + \epsilon}.}}}$
 11. An echo canceller having at least one channel and at least one segment per channel, the echo canceller having filter coefficients W_(i,j)(k) being updateable in the frequency domain at a time block m, wherein the echo canceller is configured to: determine a canceller output E_(m)(k) over the nth time block as the difference between Z_(m)(k) and a cancelling term based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,m}(k)}}}};$ determine a canceller error ϵ(k) over the m−

th time block as the difference between

(k) and a cancelling term based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{W_{i,j}(k)}{X_{i,j,{m - }}(k)}}}};$ determine a look-backward error

(k) as

(k)=ε(k)−λ

(k) wherein

(k) is based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{X_{a,b,m}(k)}}^{2}}} + \epsilon}{X_{i,j,{m - }}(k)}}}};$ determine a look-forward error {right arrow over (ε)}(k) as {right arrow over (ε)}(k)=E _(m)(k)−∧{right arrow over (∧)}(k) wherein {right arrow over (Δ)} (k) is based on ${\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{\frac{{\mathcal{E}(k)}{X_{i,j,{m - }}^{*}(k)}}{{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{X_{a,b,{m - }}(k)}}^{2}}} + \epsilon}{X_{i,j,m}(k)}}}};$ determine an optimal update step-size μ_(i,j,m)(k) from said canceller output E_(m)(k) over the nth time block, from said canceller error ϵ(k) over the m−

th time block, from said look- backward error

(k), and from said look-forward error {right arrow over (ϵ)}(k); and update said at least one filter coefficient W_(i,j)(k) by using said optimal update step-size μ_(i,j,m)(k); wherein C corresponds to the number of channels i=0, . . . , C−1 of the echo canceller, S corresponds to the number of segments j=0, . . . , S−1 per channel of the echo canceller,

is an integer different than zero, k denotes a frequency bin, ϵ is a positive value, Z_(m)(k) corresponds to the kth spectral bin of a microphone signal at the mth time block,

(k) corresponds to the kth spectral bin of the microphone signal at the m−

th time block, Z_(i,j,m)(k) corresponds to the kth spectral bin of a far-end signal at the ith channel, jth segment, and m−th time block,

(k) corresponds to the kth spectral bin of the far-end signal at the ith channel, jth segment, and m−

th time block, λ is an overshoot factor, and a, b are channel and segment indices, respectively.
 12. The echo canceller according to claim 11, wherein the echo canceller is further configured to compute the optimal step size μ_(i,j,m)(k) by either ${\mu_{i,j,m}(k)} = \frac{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)}{\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{_{a,b,m}(k)}}}}}$ or ${{\mu_{i,j,m}(k)} = {1 - \sqrt{1 - \frac{{\Phi_{i,j}(k)}{_{i,j,m}(k)}}{{\Psi_{m}(k)} + {\sum\limits_{a = 0}^{C - 1}{\sum\limits_{b = 0}^{S - 1}{{\Phi_{a,b}(k)}{_{a,b,m}(k)}}}}}}}},$ wherein Ψ_(m)(k) is a power spectrum of the non-cancellable components at the mth time block and Φ_(i,j)(k) is a power spectrum of the misalignment of each i,jth filter, wherein the echo canceller is configured to determine Ψ_(m)(k) and Ψ_(i,j)(k) by solving the set of linear equations ${\Psi_{m}(k)} = {{\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,m}(k)}{\Phi_{i,j}(k)}}}} = {{E_{m}(k)}}^{2}}$ ${{\mathrm{\Upsilon}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,{m - }}(k)}{\Phi_{i,j}(k)}}}}} = {{\mathcal{E}(k)}}^{2}$ ${{\mathrm{\Upsilon}(k)} + {4{\overset{\leftarrow}{T}(k)}{\Psi_{m}(k)}} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,{m - }}(k)}{\Phi_{i,j}(k)}}}}} = {{\overset{\leftarrow}{\mathcal{E}}(k)}}^{2}$ ${{4{\overset{->}{T}(k)}{\mathrm{\Upsilon}(k)}} + {\Psi_{m}(k)} + {\sum\limits_{i = 0}^{C - 1}{\sum\limits_{j = 0}^{S - 1}{{_{i,j,m}(k)}{\Phi_{i,j}(k)}}}}} = {{\overset{->}{\mathcal{E}}(k)}}^{2}$ subject to inequality constraints Y(k)>0, Ψ_(m)(k)>0, Ψ_(9,0)(k)>0, . . . . Ψ_(C−1,5−1)(k)>0; wherein X_(i,j,m)(k) corresponds to the kth power spectral bin of the far-end signal at the ith channel, jth segment, and mth time block,

(k) corresponds to the kth power spectral bin of the far-end signal at the ith channel, jth segment, and m−

th time block, Y(k) corresponds to the kth power spectral bin of a power spectrum of the non-cancellable components at the m−

th block,

(k) is the kth frequency bin of the normalized look-backward update, computed as

(k)=

(k)/|E _(m)(k)|², and {right arrow over (T)}t(k) is the kth frequency bin of the normalized look-forward update, computed as T(k)={right arrow over (Δ)} (k)/|ε(k))|².
 13. The echo canceller according to claim 11, wherein the overshoot factor λ is in the range 1<λ≤2.
 14. The echo canceller according to any one of the claim 11, wherein the echo canceller is configured to determine an improved canceller output O_(m)(k) as O_(m)(k) = E_(m)(k)B_(m)(k) ${B_{m}(k)} = \left\lfloor \frac{{{E_{m}(k)}}^{2} - {\Lambda_{m}(k)}}{{{E_{m}(k)}}^{2}} \right\rfloor_{ɛ}$ Λ m  ( k ) =  m  ( k ) + m  ( k ) +  m  ( k ) , wherein └ ┘_(ε) denotes low clipping by ε>0, E_(m)(k) is the canceller output, R_(m)(k) is a power spectrum of the residual echo due to filter misalignment at the mth block, Q_(m)(k) is a power spectrum of the echo beyond the canceller's time scope at the mth block, and P_(m)(k) is a power spectrum of the non-linear echo components at the mth block.
 15. The echo canceller according to claim 11, wherein the echo canceller configured to update the at least one filter coefficient W_(ij)(k) based on ${W_{i,j}^{new}(k)} = {{W_{i,j}(k)} + {{\mu_{i,j,m}(k)}{\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{{X_{i,j,m}(k)}}^{2} + \epsilon}.}}}$
 16. The method according to claim 1, wherein the overshoot factor λ equals
 2. 17. The method according to claim 1, wherein at least one of the number of channels and the number of segments per channel is larger than one; and the optimal step size μ_(i,j,m)(k) is determined from said canceller output E_(m)(k) over the mth time block, from said canceller error {right arrow over (ϵ)}(k) over the m−

th time block, from said look-backward error

(k), from said look-forward error {right arrow over (ϵ)}(k) as well as from at least one additional look-backward error

(k) and from at least one additional look-forward error {right arrow over (ε)}_(r,s)(k) for at least one r,sth filter, r and s being indices of the channel and the segment, respectively, wherein

(k)=ε(k)−λ

(k), wherein

(k) is based on ${\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}^{\;}\sum\limits_{j}^{\;}}\frac{{E_{m}(k)}{X_{i,j,m}^{*}(k)}}{{\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}^{\;}\sum\limits_{b}^{\;}}{{X_{a,b,m}(k)}}^{2}} + \epsilon}{X_{i,j,{m - }}(k)}},{and}$ ${{\overset{}{\mathcal{E}_{r,s}}(k)} = {{E_{m}(k)} - {\lambda \; {\overset{}{\Delta_{r,s}}(k)}}}},$ wherein {right arrow over (Δ)}_(r,s)(k) is based on $\overset{{{{i \neq r}\&}j} \neq s}{\sum\limits_{i}^{\;}\sum\limits_{j}^{\;}}\frac{{\mathcal{E}(k)}{X_{i,j,{m - }}^{*}(k)}}{{\overset{{{{a \neq r}\&}b} \neq s}{\sum\limits_{a}^{\;}\sum\limits_{b}^{\;}}{{X_{a,b,{m - }}(k)}}^{2}} + \epsilon}{{X_{i,j,m}(k)}.}$
 18. The echo canceller according to claim 11, wherein the overshoot factor λ equals
 2. 19. The echo canceller according to claim 12, wherein the overshoot factor λ is in the range 1<λ≤2.
 20. The echo canceller according to claim 12, wherein the overshoot factor λ equals
 2. 